snapshot: Redo pop() API
authorBenjamin Otte <otte@redhat.com>
Thu, 12 Jan 2017 23:39:59 +0000 (00:39 +0100)
committerBenjamin Otte <otte@redhat.com>
Fri, 13 Jan 2017 02:38:36 +0000 (03:38 +0100)
gtk_snapshot_pop() => removed
gtk_snapshot_pop_and_append() => gtk_snapshot_pop()

So now there is no way to get a rendernode out of the snapshotting API
until you gtk_snapshot_finish().

20 files changed:
docs/reference/gtk/gtk4-sections.txt
gtk/gtkcellrenderer.c
gtk/gtkcellrendererprogress.c
gtk/gtkcellrenderertext.c
gtk/gtkcellrenderertoggle.c
gtk/gtkcolorswatch.c
gtk/gtkcssfiltervalue.c
gtk/gtkcssimagecrossfade.c
gtk/gtkiconview.c
gtk/gtkmenu.c
gtk/gtkpaned.c
gtk/gtkrenderbackground.c
gtk/gtkrendericon.c
gtk/gtkrevealer.c
gtk/gtksnapshot.c
gtk/gtksnapshot.h
gtk/gtkstack.c
gtk/gtktreeview.c
gtk/gtkviewport.c
gtk/gtkwidget.c

index 76fb07966c4d096247b7f5dedd4e0de0f12ec1d7..d74a2a9ed5245907817ab0aaf0cfe4e6f90454f1 100644 (file)
@@ -4461,7 +4461,6 @@ gtk_snapshot_push_rounded_clip
 gtk_snapshot_push_cross_fade
 gtk_snapshot_push_blend
 gtk_snapshot_pop
-gtk_snapshot_pop_and_append
 gtk_snapshot_set_transform
 gtk_snapshot_transform
 gtk_snapshot_translate_2d
index 7c0f7766f34cd9a5434e5c3b3c88bddcf80a603f..334ddcaaae3a6ea3936ec33c218047634e2bcfee 100644 (file)
@@ -787,7 +787,7 @@ gtk_cell_renderer_snapshot (GtkCellRenderer      *cell,
                                                 cell_area,
                                                 flags);
   gtk_style_context_restore (context);
-  gtk_snapshot_pop_and_append (snapshot);
+  gtk_snapshot_pop (snapshot);
 }
 
 /**
index 290fd14b9e218cbc10aacb8f64a51290b6c059cd..56ca8e427bdbf67eb8336590f46aaaa0bf6fbde4 100644 (file)
@@ -671,7 +671,7 @@ gtk_cell_renderer_progress_snapshot (GtkCellRenderer      *cell,
                                   layout);
 
       gtk_style_context_restore (context);
-      gtk_snapshot_pop_and_append (snapshot);
+      gtk_snapshot_pop (snapshot);
 
       gtk_style_context_save (context);
       gtk_style_context_add_class (context, GTK_STYLE_CLASS_TROUGH);
@@ -700,7 +700,7 @@ gtk_cell_renderer_progress_snapshot (GtkCellRenderer      *cell,
                                       x_pos, y_pos,
                                       layout);
 
-          gtk_snapshot_pop_and_append (snapshot);
+          gtk_snapshot_pop (snapshot);
         }
 
       if (bar_position + bar_size < start + full_size)
@@ -727,7 +727,7 @@ gtk_cell_renderer_progress_snapshot (GtkCellRenderer      *cell,
                                       x_pos, y_pos,
                                       layout);
 
-          gtk_snapshot_pop_and_append (snapshot);
+          gtk_snapshot_pop (snapshot);
         }
 
       gtk_style_context_restore (context);
index a5f225580acc2485888917d3bbe2df84613f7a99..a969a3649de3556e68824984e61107618a9b75d2 100644 (file)
@@ -1767,7 +1767,7 @@ gtk_cell_renderer_text_snapshot (GtkCellRenderer      *cell,
                               cell_area->y + y_offset + ypad,
                               layout);
 
-  gtk_snapshot_pop_and_append (snapshot);
+  gtk_snapshot_pop (snapshot);
 
   g_object_unref (layout);
 }
index 7f8dc74b0c5906d8f7f121e09f45ba0c3fc33e65..502247436bc32ab7e67afcde3a699b2cfcba0c05 100644 (file)
@@ -465,7 +465,7 @@ gtk_cell_renderer_toggle_snapshot (GtkCellRenderer      *cell,
                                image_type);
 
   gtk_style_context_restore (context);
-  gtk_snapshot_pop_and_append (snapshot);
+  gtk_snapshot_pop (snapshot);
 }
 
 static gint
index aa11f34b3d2f4656a731fb771b05328f316d1989..a7af9a7ffe16b08170ae3eb50b4d49e7103891fa 100644 (file)
@@ -176,7 +176,7 @@ gtk_color_swatch_render (GtkCssGadget *gadget,
                                           "ColorSwatch Opaque Color");
         }
 
-      gtk_snapshot_pop_and_append (snapshot);
+      gtk_snapshot_pop (snapshot);
     }
 
   gtk_css_gadget_snapshot (swatch->priv->overlay_gadget, snapshot);
index 7ad0bd431bd890d2071a49afe58464ce0484a851..cb33e424c8deb7c20c2bf67e489b600b3260fa4c 100644 (file)
@@ -859,5 +859,5 @@ gtk_css_filter_value_pop_snapshot (const GtkCssValue *filter,
   if (gtk_css_filter_value_is_none (filter))
     return;
 
-  gtk_snapshot_pop_and_append (snapshot);
+  gtk_snapshot_pop (snapshot);
 }
index 7f80248c2bc7469654bc22c1c7be3976e2278104..08cd137fee6c1e92d15d1ea6e6d3db04dddfa461 100644 (file)
@@ -110,11 +110,11 @@ gtk_css_image_cross_fade_snapshot (GtkCssImage *image,
 
   if (cross_fade->start)
     gtk_css_image_snapshot (cross_fade->start, snapshot, width, height);
-  gtk_snapshot_pop_and_append (snapshot);
+  gtk_snapshot_pop (snapshot);
 
   if (cross_fade->end)
     gtk_css_image_snapshot (cross_fade->end, snapshot, width, height);
-  gtk_snapshot_pop_and_append (snapshot);
+  gtk_snapshot_pop (snapshot);
 }
 
 static gboolean
index 2cbc6802aa7cc086e5fb77057c463e103166e285..580208f6fedc6c7425385ed8b7d85dffdaaf5e47 100644 (file)
@@ -1846,7 +1846,7 @@ gtk_icon_view_snapshot (GtkWidget   *widget,
   if (icon_view->priv->doing_rubberband)
     gtk_icon_view_snapshot_rubberband (icon_view, snapshot);
 
-  gtk_snapshot_pop_and_append (snapshot);
+  gtk_snapshot_pop (snapshot);
 
   GTK_WIDGET_CLASS (gtk_icon_view_parent_class)->snapshot (widget, snapshot);
 }
index e1b3ec1952158ac13c20fd9b52e0eccd17154f25..c70b3ea9fc2f17a3f322cba1a866267cc97a92c9 100644 (file)
@@ -2970,7 +2970,7 @@ gtk_menu_snapshot (GtkWidget   *widget,
 
   GTK_WIDGET_CLASS (gtk_menu_parent_class)->snapshot (widget, snapshot);
 
-  gtk_snapshot_pop_and_append (snapshot);
+  gtk_snapshot_pop (snapshot);
 }
 
 static void
index 4953ca943dafb655289b5764e4faeb254a60a5aa..276207402bc9c550d60f837d8686147458b31d7f 100644 (file)
@@ -1679,7 +1679,7 @@ gtk_paned_render (GtkCssGadget *gadget,
                               ),
                               "GtkPanedChild1");
       gtk_widget_snapshot_child (widget, priv->child1, snapshot);
-      gtk_snapshot_pop_and_append (snapshot);
+      gtk_snapshot_pop (snapshot);
     }
 
   if (priv->child2 && gtk_widget_get_visible (priv->child2))
@@ -1694,7 +1694,7 @@ gtk_paned_render (GtkCssGadget *gadget,
                               ),
                               "GtkPanedChild2");
       gtk_widget_snapshot_child (widget, priv->child2, snapshot);
-      gtk_snapshot_pop_and_append (snapshot);
+      gtk_snapshot_pop (snapshot);
     }
 
   return FALSE;
index 6d2f2fd95320e957fb428f0ad83ad836f35df2cc..bca7dc13f76e8a3923ea58835b731de01255a10f 100644 (file)
@@ -105,7 +105,7 @@ gtk_theming_background_snapshot_color (GtkThemingBackground *bg,
                                       bg_color,
                                       &bg->boxes[clip].bounds,
                                       "BackgroundColor");
-      gtk_snapshot_pop_and_append (snapshot);
+      gtk_snapshot_pop (snapshot);
     }
 }
 
@@ -506,12 +506,12 @@ gtk_theming_background_snapshot_layer (GtkThemingBackground *bg,
                                  position_y + 0.5 * (repeat_height - image_height));
       gtk_css_image_snapshot (image, snapshot, image_width, image_height);
 
-      gtk_snapshot_pop_and_append (snapshot);
+      gtk_snapshot_pop (snapshot);
     }
 
   gtk_snapshot_translate_2d (snapshot, - origin->bounds.origin.x, - origin->bounds.origin.y);
 
-  gtk_snapshot_pop_and_append (snapshot);
+  gtk_snapshot_pop (snapshot);
 }
 
 static void
@@ -664,9 +664,9 @@ gtk_css_style_snapshot_background (GtkCssStyle      *style,
         }
       else
         {
-          gtk_snapshot_pop_and_append (snapshot);
+          gtk_snapshot_pop (snapshot);
           gtk_theming_background_snapshot_layer (&bg, idx, snapshot);
-          gtk_snapshot_pop_and_append (snapshot);
+          gtk_snapshot_pop (snapshot);
         }
     }
 
index 9cf0b6efba1a210c3337903c328e9a3ceaa7e434..f8c50fa6a4b4c7e088974c0cc3e1009b9b859591 100644 (file)
@@ -140,12 +140,12 @@ gtk_css_style_snapshot_icon (GtkCssStyle            *style,
 
       gtk_css_image_builtin_snapshot (image, snapshot, width, height, builtin_type);
 
-      gtk_snapshot_pop_and_append (snapshot);
+      gtk_snapshot_pop (snapshot);
     }
 
   if (shadows)
     {
-      gtk_snapshot_pop_and_append (snapshot);
+      gtk_snapshot_pop (snapshot);
       g_free (shadows);
     }
   
@@ -322,12 +322,12 @@ gtk_css_style_snapshot_icon_texture (GtkCssStyle *style,
       graphene_rect_init (&bounds, 0, 0, gsk_texture_get_width (texture), gsk_texture_get_height (texture));
       gtk_snapshot_append_texture_node (snapshot, texture, &bounds, "Icon");
 
-      gtk_snapshot_pop_and_append (snapshot);
+      gtk_snapshot_pop (snapshot);
     }
 
   if (shadows)
     {
-      gtk_snapshot_pop_and_append (snapshot);
+      gtk_snapshot_pop (snapshot);
       g_free (shadows);
     }
   
index 4c30ac78387cf45ac802098ea9516968a1f7af74..9e9a6c8c5b5c8433bc36156be1a9f36e68e561a6 100644 (file)
@@ -851,7 +851,7 @@ gtk_revealer_snapshot (GtkWidget   *widget,
                               ),
                               "RevealerClip");
       gtk_widget_snapshot_child (widget, child, snapshot);
-      gtk_snapshot_pop_and_append (snapshot);
+      gtk_snapshot_pop (snapshot);
     }
 }
 
index 3e0b9f4e0ca9c8c41913968ed1db928ec506576b..7c9a75a1431f86e7e25fe654a969e80a3a1ace6e 100644 (file)
@@ -156,21 +156,6 @@ gtk_snapshot_init (GtkSnapshot          *snapshot,
                                             gtk_snapshot_collect_default);
 }
 
-GskRenderNode *
-gtk_snapshot_finish (GtkSnapshot *snapshot)
-{
-  GskRenderNode *result;
-  
-  result = gtk_snapshot_pop (snapshot);
-
-  if (snapshot->state != NULL)
-    {
-      g_warning ("Too many gtk_snapshot_push() calls.");
-    }
-
-  return result;
-}
-
 /**
  * gtk_snapshot_push:
  * @snapshot: a #GtkSnapshot
@@ -887,21 +872,8 @@ gtk_snapshot_push_cross_fade (GtkSnapshot *snapshot,
   snapshot->state = state;
 }
 
-/**
- * gtk_snapshot_pop:
- * @snapshot: a #GtkSnapshot
- *
- * Removes the top element from the stack of render nodes,
- * making the node underneath the current node again.
- *
- * Returns: (transfer full) (nullable): A #GskRenderNode for
- *     the contents that were rendered to @snapshot since
- *     the corresponding gtk_snapshot_push() call
- *
- * Since: 3.90
- */
-GskRenderNode *
-gtk_snapshot_pop (GtkSnapshot *snapshot)
+static GskRenderNode *
+gtk_snapshot_pop_internal (GtkSnapshot *snapshot)
 {
   GtkSnapshotState *state;
   GskRenderNode *node;
@@ -931,8 +903,23 @@ gtk_snapshot_pop (GtkSnapshot *snapshot)
   return node;
 }
 
+GskRenderNode *
+gtk_snapshot_finish (GtkSnapshot *snapshot)
+{
+  GskRenderNode *result;
+  
+  result = gtk_snapshot_pop_internal (snapshot);
+
+  if (snapshot->state != NULL)
+    {
+      g_warning ("Too many gtk_snapshot_push() calls.");
+    }
+
+  return result;
+}
+
 /**
- * gtk_snapshot_pop_and_append:
+ * gtk_snapshot_pop:
  * @snapshot: a #GtkSnapshot
  *
  * Removes the top element from the stack of render nodes,
@@ -941,11 +928,11 @@ gtk_snapshot_pop (GtkSnapshot *snapshot)
  * Since: 3.90
  */
 void
-gtk_snapshot_pop_and_append (GtkSnapshot *snapshot)
+gtk_snapshot_pop (GtkSnapshot *snapshot)
 {
   GskRenderNode *node;
 
-  node = gtk_snapshot_pop (snapshot);
+  node = gtk_snapshot_pop_internal (snapshot);
   if (node)
     {
       gtk_snapshot_append_node (snapshot, node);
index b59f32ce58de4ac7056ca47098c3d3bc556ae8cc..d44ad4d84daa6ba5abee16afa3154f0539c73b7b 100644 (file)
@@ -90,9 +90,7 @@ void            gtk_snapshot_push_cross_fade            (GtkSnapshot
                                                          const char             *name,
                                                          ...) G_GNUC_PRINTF (3, 4);
 GDK_AVAILABLE_IN_3_90
-GskRenderNode * gtk_snapshot_pop                        (GtkSnapshot            *snapshot) G_GNUC_WARN_UNUSED_RESULT;
-GDK_AVAILABLE_IN_3_90
-void            gtk_snapshot_pop_and_append             (GtkSnapshot            *snapshot);
+void            gtk_snapshot_pop                        (GtkSnapshot            *snapshot);
 
 GDK_AVAILABLE_IN_3_90
 void            gtk_snapshot_translate_2d               (GtkSnapshot            *snapshot,
index 0e4e46372ff8820b56a1052a1dd6f2898a39cccd..083c19990e8577eeb5be9d0b870b6cc126204572 100644 (file)
@@ -1925,14 +1925,14 @@ gtk_stack_snapshot_crossfade (GtkWidget   *widget,
 
       gtk_snapshot_push_transform (snapshot, &identity, "CrossFadeStart");
       gtk_snapshot_append_node (snapshot, priv->last_visible_node);
-      gtk_snapshot_pop_and_append (snapshot);
+      gtk_snapshot_pop (snapshot);
     }
-  gtk_snapshot_pop_and_append (snapshot);
+  gtk_snapshot_pop (snapshot);
 
   gtk_widget_snapshot_child (widget,
                              priv->visible_child->widget,
                              snapshot);
-  gtk_snapshot_pop_and_append (snapshot);
+  gtk_snapshot_pop (snapshot);
 }
 
 static void
@@ -1984,7 +1984,7 @@ gtk_stack_snapshot_under (GtkWidget   *widget,
                              priv->visible_child->widget,
                              snapshot);
 
-  gtk_snapshot_pop_and_append (snapshot);
+  gtk_snapshot_pop (snapshot);
 
   if (priv->last_visible_node)
     {
@@ -1994,7 +1994,7 @@ gtk_stack_snapshot_under (GtkWidget   *widget,
 
       gtk_snapshot_push_transform (snapshot, &matrix, "StackUnder");
       gtk_snapshot_append_node (snapshot, priv->last_visible_node);
-      gtk_snapshot_pop_and_append (snapshot);
+      gtk_snapshot_pop (snapshot);
     }
 }
 
@@ -2055,7 +2055,7 @@ gtk_stack_snapshot_slide (GtkWidget   *widget,
       graphene_matrix_init_translate (&matrix, &GRAPHENE_POINT3D_INIT (x, y, 0));
       gtk_snapshot_push_transform (snapshot, &matrix, "StackSlide");
       gtk_snapshot_append_node (snapshot, priv->last_visible_node);
-      gtk_snapshot_pop_and_append (snapshot);
+      gtk_snapshot_pop (snapshot);
      }
 
   gtk_widget_snapshot_child (widget,
@@ -2139,7 +2139,7 @@ gtk_stack_render (GtkCssGadget *gadget,
               g_assert_not_reached ();
             }
 
-          gtk_snapshot_pop_and_append (snapshot);
+          gtk_snapshot_pop (snapshot);
         }
       else
         gtk_widget_snapshot_child (widget,
index e289d0b256431ff2d7b59378451028215761dace..7e7f3d5edd5c309b5a786e241cc3e591f5aaa827 100644 (file)
@@ -5412,7 +5412,7 @@ gtk_tree_view_snapshot (GtkWidget   *widget,
       gtk_widget_snapshot_child (widget, child->widget, snapshot);
     }
 
-  gtk_snapshot_pop_and_append (snapshot);
+  gtk_snapshot_pop (snapshot);
   
 #if 0
   Thyis clearly does not work. priv->drag_highlight_window is potentially a toplevel...
@@ -5478,7 +5478,7 @@ gtk_tree_view_snapshot (GtkWidget   *widget,
 
   gtk_style_context_restore (context);
 
-  gtk_snapshot_pop_and_append (snapshot);
+  gtk_snapshot_pop (snapshot);
 }
 
 enum
index d439c456e34bbf714303f878967ccd2d7689bc17..ff8933c237ea41abca19b5dc05b80bb5a0f8e549 100644 (file)
@@ -298,7 +298,7 @@ gtk_viewport_render (GtkCssGadget *gadget,
 
   GTK_WIDGET_CLASS (gtk_viewport_parent_class)->snapshot (widget, snapshot);
 
-  gtk_snapshot_pop_and_append (snapshot);
+  gtk_snapshot_pop (snapshot);
 
   return FALSE;
 }
index 2f93d63413830ccf54de893cda0039cfc4fdd9cf..e84179ded48968081210be4fa2aef624269a20b7 100644 (file)
@@ -15661,13 +15661,13 @@ gtk_widget_snapshot (GtkWidget   *widget,
         }
 
       if (opacity < 1.0)
-        gtk_snapshot_pop_and_append (snapshot);
+        gtk_snapshot_pop (snapshot);
     }
 
   gtk_css_filter_value_pop_snapshot (filter_value, snapshot);
 
   if (GTK_DEBUG_CHECK (SNAPSHOT))
-    gtk_snapshot_pop_and_append (snapshot);
+    gtk_snapshot_pop (snapshot);
 }
 
 void